Many electronic services request data from other services. This may be accomplished by transmitting data in the form of a request. A request may include one or more parameters which may be used by the requested service in fulfillment of that request. Requests may occur in one or more manners, for example: (1) over an electronic network, (2) as a call to an application programming interface, (3) by writing data to a socket, file, or data store, (4) through some other data transmission, or (5) through some combination thereof. Commonly, a requested service may reply to a request with a data response. A data response may occur, for example, in one or more of the manners identified above for requests.
The transmission and fulfillment of a request may be associated with one or more costs, including time, bandwidth, processing, monetary and/or other costs. For example, the formation, transmission, and receipt processing of a response and/or request may result in such costs. The requested service's process of fulfilling a received request in order to create a response may additionally or alternatively result in such costs. For example, fulfillment may entail access to a slow data store, extensive use of a central processing unit, and/or a resulting request to one or more other services.
An electronic service may occasionally have reason to make a request that is identical to one it has previously made. To reduce costs associated with the transmission and fulfillment of duplicate requests, some electronic systems store responses in cache. A system may fulfill subsequent requests which are identical to an earlier request using a cached response associated with the earlier request. However, a request which is not identical to an earlier request may not be capable of being satisfied with a cached response.